package 蓝桥真题;

public class 二零二二 { 
	   static long f[][]=new long[11][2023];
	   static int v[][]=new int[11][220];
       public static void main(String[] args) {
    	      //利用分组背包求解
		      for(int i=1;i<=10;i++){
		    	  for(int j=0;j<220;j++){
		    		 v[i][j]=(i-1)*220+j+1;
		    	  }
		      }
		      f[0][0]=1;
		      for(int i=1;i<=10;i++){
		    	  for(int j=0;j<=2022;j++)
		    		  for(int k=0;k<220;k++){
		    			  if(j-v[i][k]>=0)
		    			  f[i][j]=f[i][j]+f[i-1][j-v[i][k]];
		    		  }
		      }
		      System.out.print(f[10][2022]);
	}
}
/*int res=0;
//相当于要算10^30 10^22秒 算不出结果
for(int i1=1;i1<2022;i1++)
	  for(int i2=i1+1;i1+i2<2022;i2++)
		  for(int i3=i2+1;i1+i2+i3<2022;i3++)
			  for(int i4=i3+1;i1+i2+i3+i4<2022;i4++)
				  for(int i5=i4+1;i1+i2+i3+i4+i5<2022;i5++)
					  for(int i6=i5+1;i1+i2+i3+i4+i5+i6<2022;i6++)
						  for(int i7=i6+1;i1+i2+i3+i4+i5+i6+i7<2022;i7++)
							  for(int i8=i7+1;i1+i2+i3+i4+i5+i6+i7+i8<2022;i8++)
								  for(int i9=i8+1;i1+i2+i3+i4+i5+i6+i7+i8+i9<2022;i9++)
									  for(int i10=i9+1;i1+i2+i3+i4+i5+i6+i7+i8+i9+i10<=2022;i10++)
										  res++;
System.out.print(res);*/